#include<iostream>



// static：1.由类进行初始化
//         2.不和具体的对象对应
//         3.被所有对象共享


class Test
{
public:
Test()
{a++;}

~Test()
{
    a--;
}
    // 静态成员函数：1、不与某个对象对应
                // 2、没有this指针
                // 3、不能访问普通成员变量
                // 4、能访问静态成员变量
    static void func()
    {

    }
public:
    static int a;

};

int Test::a = 0;//静态成员变量在类外单独初始化



int main()
{
    
    Test *t = new Test;
    Test *t1 = new Test;
    //访问静态变量不需要借助任何对象
    
    delete t;
    std::cout<<Test::a<<std::endl;
    
    Test::a = 2;
    std::cout<<Test::a<<std::endl;
    return 0;
}